package com.edu.interceptor;

import org.springframework.cglib.proxy.MethodInterceptor;
import org.springframework.cglib.proxy.MethodProxy;

import java.lang.reflect.Method;
import java.util.Date;

public class MyInterceptor implements MethodInterceptor {

    private Object obj;

    public MyInterceptor(Object obj) {
        this.obj = obj;
    }

    /**
     *  interceptor方法 表示 被代理对象的方法的增强
     * @param o 代理对象
     * @param method 原本要执行的方法
     * @param objects 方法的参数
     * @param methodProxy 方法代理（不用）
     * @return
     * @throws Throwable
     */
    @Override
    public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
        System.out.println("执行时间:"+new Date());
        return method.invoke(obj,objects);
    }
}
